package com.hn658.groupshare.account.dao.redis;

import java.util.List;

import com.hn658.groupshare.account.entity.UserAccountEO;

public interface IUserAccountRedisDao {

	/**
     * 保存用户信息，去除某些字段，可以传入null
     * @param userInfo
     */
    public void saveUserInfo(UserAccountEO userInfo,List<String> fields);

    /**
     * 根据用户Id，获取用户信息
     * @param userId
     * @return
     */
    public UserAccountEO getUserById(Long userId);

    /**
     * 根据用户名，获取用户信息
     * @param mobilephone
     * @return
     */
    public UserAccountEO getUserByMobilePhone(String mobilePhone);

    /**
     * 
     * <p>删除用户缓存</p> 
     * @author ztjie
     * @date 2015-12-5 下午10:54:14
     * @param id
     * @see
     */
    public void delete(Long id);
    
	/**
	 * 设置用户Session
	 * @param uid
	 * @param authkey
	 */
	public void setUserAuthkey(Long uid, String authkey);
	
	/**
	 * 移除用户Session
	 * @param uid
	 */
	public void removeUserAuthkey(Long uid);
	
	/**
	 * 通过Session Authkey获取Uid
	 * @param authkey
	 * @return
	 */
	public Long getUidByAuthkey(String authkey);

    /**
     * 根据auth查找用户
     * @param authkey
     * @return
     */
    public UserAccountEO getUserByAuth(String authkey);
}
